import java.util.Arrays;

public class triangleNumber {
    //有效三角形的个数
    public int triangleNumber(int[] nums) {
        Arrays.sort(nums);

        int ret = 0, n = nums.length;
        //先固定最大的数
        for(int i=n-1;i>1;i--){
            int left = 0,right = i-1;
            while(right>left){
                if(nums[left]+nums[right] > nums[i]){
                    ret += right-left;
                    right--;
                } else {
                    left++;
                }
            }
        }
        return ret;
    }
}
